package com.yuelao.yuelao_backend.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户配对表
 */
@Data
@TableName("user_matches")
public class UserMatch implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID 1
     */
    @TableField("user_id_1")
    private Long userId1;

    /**
     * 用户ID 2
     */
    @TableField("user_id_2")
    private Long userId2;

    /**
     * 是否超级配对
     */
    private Boolean isSuperMatch;

    /**
     * 状态: 0-解除, 1-有效
     */
    private Integer status;

    /**
     * 配对时间
     */
    private LocalDateTime matchedAt;

    /**
     * 解除配对时间
     */
    private LocalDateTime unmatchedAt;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
    
    /**
     * 获取配对的另一个用户ID
     * @param currentUserId 当前用户ID
     * @return 配对的另一个用户ID
     */
    public Long getMatchedUserId(Long currentUserId) {
        if (currentUserId == null) {
            return null;
        }
        if (currentUserId.equals(userId1)) {
            return userId2;
        } else if (currentUserId.equals(userId2)) {
            return userId1;
        }
        return null;
    }
    
    /**
     * 获取配对的另一个用户ID（无参版本，返回userId2）
     * @return userId2
     */
    public Long getMatchedUserId() {
        return userId2;
    }
    
    /**
     * 设置用户ID（兼容方法）
     * @param userId 用户ID
     */
    public void setUserId(Long userId) {
        this.userId1 = userId;
    }
    
    /**
     * 获取用户ID（兼容方法）
     * @return 用户ID
     */
    public Long getUserId() {
        return this.userId1;
    }
    
    /**
     * 设置配对用户ID（兼容方法）
     * @param matchedUserId 配对用户ID
     */
    public void setMatchedUserId(Long matchedUserId) {
        this.userId2 = matchedUserId;
    }
}

